package com.study.batch.update.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.study.batch.update.entity.Dept;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.Collection;

@Repository
@Mapper
public interface DeptMapper extends BaseMapper<Dept> {
    /**
     * 如果冲突会将冲突的老数据删除
     * 然后插入新数据(插入时没有值的自然就成了默认值,很容易一不小心将不需要更新的数据更新成默认值)
     * @param depts
     * @return
     */
    int update4replaceInto(Collection<Dept> depts);

    /**
     * 尝试插入,如果冲突就更新,不会将没有赋值的字段更新成默认值
     * 但是如果有两个列都是唯一的,冲突了多行,只更新一行
     * @param depts
     * @return
     */
    int update4insertInto(Collection<Dept> depts);

    /**
     * mysql自带的批量更新,就是更新语句有点长(可以放心的用)
     * @param depts
     * @return
     */
    int update4case(Collection<Dept> depts);

}
